use lazy_static::lazy_static;
use regex::Regex;

lazy_static! {
    static ref REDATE: Regex = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
    static ref REDATETIME: Regex = Regex::new(r"^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$").unwrap();
    // 邮箱
    static ref REEMAIL: Regex = Regex::new(r"^\w+@\w+\.\w+$").unwrap();
    // 手机号
    static ref REPHONE: Regex = Regex::new(r"^1[3-9]\d{9}$").unwrap();
    // 身份证号
    static ref REIDCARD: Regex = Regex::new(r"^\d{17}[\dXx]$").unwrap();
    // 银行卡号
    static ref REBANKCARD: Regex = Regex::new(r"^\d{16,19}$").unwrap();
}

pub fn is_date(s: &str) -> bool {
    REDATE.is_match(s)
}

// 检查是否是合法的日期时间格式
pub fn is_datetime(s: &str) -> bool {
    REDATETIME.is_match(s)
}

// 检查是否是合法的邮箱格式
pub fn is_email(s: &str) -> bool {
    REEMAIL.is_match(s)
}

// 检查是否是合法的手机号格式
pub fn is_phone(s: &str) -> bool {
    REPHONE.is_match(s)
}

// 检查是否是合法的身份证号格式
pub fn is_idcard(s: &str) -> bool {
    REIDCARD.is_match(s)
}
